package fr.utbm.tx52;

import java.io.*;

/** 
 * Classe qui gère les commandes tapées dans la console 
*/
class Commande implements Runnable
{
	Server _server; // pour utilisation des méthodes de la classe principale
	BufferedReader _in; // pour gestion du flux d'entrée (celui de la console)
	String _strCommande=""; // contiendra la commande tapée
	Thread _t; // contiendra le thread

	//** Constructeur : initialise les variables nécessaires **
	Commande(Server server)
	{
		_server=server; 
		_in = new BufferedReader(new InputStreamReader(System.in));
		_t = new Thread(this);
		_t.start();
	}

	//** Methode : attend les commandes dans la console et exécute l'action demandée **
	public void run()
	{
		try
		{
			// si aucune commande n'est tapée, on ne fait rien (bloquant sur _in.readLine())
			while ((_strCommande=_in.readLine())!=null)
			{
				if (_strCommande.equalsIgnoreCase("quit")) {
					System.exit(0); 
				}
				else if (_strCommande.equalsIgnoreCase("ls")) {
					_server.printClientList();
				}
				else
				{
					// l'aide
					System.out.println("\n--------");
					System.out.println("Cette commande n'est pas supportee");
					System.out.println("Quitter : \"quit\"");
					System.out.println("Liste des clients : \"ls\"");
					System.out.println("--------\n");
				}
				System.out.flush();
			}
		}
		catch (IOException e) {}
	}
}
